/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

package 处理流.其他流.打印流;

import org.junit.Test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

/**
 * @Description 打印流 处理流的一种
 * 实现将基本数据类型的数据格式转化为字符串输出
 *
 * 打印流： PrintStream 和 PrintWriter
 *
 * 提供了一系列重载 的 print() 和 println() 方法 ，用于多种数据类型的输出
 * PrintStream 和 PrintWriter 的输出不会抛出 IOException 异常
 * PrintStream 和 PrintWriter 有自动 flush 功能
 * PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。
 *   在需要写入字符而不是写入字节的情况下，应该使用PrintWriter类。
 * System.out 返回的是 PrintStream 的实例
 * @Author 俊昭
 * @Date 2022/4/26
 */
public class PrintTest {
    @Test
    public void test001(){
        PrintStream ps = null;
        try{
            FileOutputStream fos = new FileOutputStream(new File("C:\\Users\\Junzhao\\IOStream\\Exer\\ASCII.txt"));

            ps = new PrintStream(fos,true);// 第二次个参数表示自动刷新 即输出换行符时清空缓冲
            System.setOut(ps);// 将标准输出进行重定向到文件
            for (int i = 0; i < 255; i++) {
                System.out.print((char) i);// 写出ASCII码
                if (i % 50 == 0) {
                    System.out.println();
                }
            }

        }catch (FileNotFoundException e){
            e.printStackTrace();
        }finally {
            if (ps != null) {
                ps.close();
            }
        }
    }
}
